'use strict';
const db = uniCloud.database();

/**
 * 云函数：用户登录
 * @param {Object} event - 请求参数
 * @param {string} event.username - 用户名
 * @param {string} event.password - 密码（明文，生产环境需加密）
 * @returns {Object} - 登录结果
 */
exports.main = async (event, context) => {
  const { username, password } = event;

  // 验证必填字段
  if (!username || !password) {
    return { code: -1, msg: '请输入用户名和密码' };
  }

  try {
    const usersCollection = db.collection('users');

    // 查询用户
    const res = await usersCollection.where({ username, password }).get();
    if (res.data.length === 0) {
      return { code: -1, msg: '用户名或密码错误' };
    }

    const user = res.data[0];
    // 返回完整用户信息
    return {
      code: 0,
      data: {
        user: {
          id: user._id,
          username: user.username,
          name: user.name,
          role: user.role,
          points: user.points || 0,
          student_id: user.student_id || '',
          major: user.major || '',
          class_id: user.class_id || '',
          avatar: user.avatar || '',
		  className: user.className || [] // 添加 className
        }
      },
      msg: '登录成功'
    };
  } catch (e) {
    console.error('登录失败:', e);
    return { code: -1, msg: `登录失败: ${e.message || '服务器错误'}` };
  }
};